package com.cy.aircompressor.api;

import com.cy.aircompressor.entity.warning.WarningConfig;
import com.cy.aircompressor.entity.warning.WarningMsg;
import com.drug.lib.view.recycptr.bean.RowEntity;
import com.net.model.bean.BaseResponse;

import java.util.List;

import io.reactivex.Flowable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface WarningApi {

    /**
     * 条件查询报警信息计数
     *
     * @param compressorId        空压机Id
     * @param compressorModel     空压机型号
     * @param compressorPartCode  空压机部位code
     * @param compressorPointCode 空压机点位Code
     * @param endTime             结束时间
     * @param sensorId            传感器id
     * @param sensorType          传感器类型
     * @param startTime           开始时间
     * @param status              信息状态 0:未处理 1:已处理
     * @return
     */

    @GET("warningMsg/queryCount")
    Flowable<BaseResponse<Integer>> queryWarningCount(@Query("compressorId") String compressorId, @Query("compressorModel") String compressorModel,
                                                      @Query("compressorPartCode") String compressorPartCode, @Query("compressorPointCode") String compressorPointCode,
                                                      @Query("endTime") String endTime, @Query("sensorId") String sensorId, @Query("sensorType") Integer sensorType,
                                                      @Query("startTime") String startTime, @Query("status") Integer status);

    /**
     * 条件查询报警信息
     *
     * @param compressorId        空压机Id
     * @param compressorModel     空压机型号
     * @param compressorPartCode  空压机部位code
     * @param compressorPointCode 空压机点位Code
     * @param endTime             结束时间
     * @param sensorId            传感器id
     * @param sensorType          传感器类型
     * @param startTime           开始时间
     * @param status              信息状态 0:未处理 1:已处理
     * @return
     */

    @GET("warningMsg/queryPage")
    Flowable<BaseResponse<RowEntity<WarningMsg>>> queryWarningByPage(@Query("pageNum") Integer pageNum, @Query("pageSize") Integer pageSize,
                                                                     @Query("compressorId") String compressorId, @Query("compressorModel") String compressorModel,
                                                                     @Query("compressorPartCode") String compressorPartCode, @Query("compressorPointCode") String compressorPointCode,
                                                                     @Query("endTime") String endTime, @Query("sensorId") String sensorId, @Query("sensorType") Integer sensorType,
                                                                     @Query("startTime") String startTime, @Query("status") Integer status);

    /**
     * 报警详情
     *
     * @param queryById 报警id
     * @return
     */
    @GET("warningMsg/cw")
    Flowable<BaseResponse<WarningMsg>> queryWarningById(@Query("queryById") String queryById);

    /**
     * 报警详情
     *
     * @param id 报警id
     * @return
     */
    @POST("warningMsg/updateStatus")
    Flowable<BaseResponse<Object>> updateStatus(@Query("id") String id);

    /**
     * 报警配置
     *
     * @param pageNum
     * @param pageSize
     * @param compressorModel
     * @param compressorPartCode
     * @param compressorPointCode
     * @param sensorType
     * @param status
     * @return
     */
    @GET("warningConfig/queryPage")
    Flowable<BaseResponse<RowEntity<WarningConfig>>> queryWarningConfigByPage(@Query("pageNum") Integer pageNum, @Query("pageSize") Integer pageSize,
                                                                              @Query("compressorModel") String compressorModel,
                                                                              @Query("compressorPartCode") String compressorPartCode, @Query("compressorPointCode") String compressorPointCode,
                                                                              @Query("sensorType") Integer sensorType, @Query("status") Integer status);


    /**
     * 批量修改
     *
     * @param parameters
     * @return
     */
    @POST("warningConfig/batchUpdate")
    Flowable<BaseResponse<Object>> batchUpdate(@Body List<Object> parameters);

    /**
     * 修改
     *
     * @param parameters
     * @return
     */
    @POST("warningConfig/update")
    Flowable<BaseResponse<Object>> update(@Body Object parameters);

    /**
     * 批量新增
     *
     * @param parameters
     * @return
     */
    @POST("warningConfig/batchAdd")
    Flowable<BaseResponse<Object>> batchAdd(@Body List<Object> parameters);

    /**
     * 新增
     *
     * @param parameters
     * @return
     */
    @POST("warningConfig/add")
    Flowable<BaseResponse<Object>> add(@Body Object parameters);


}
